home *** CD-ROM | disk | FTP | other *** search
/ Ray Dream Studio / Ray Dream Studio (CDRAYD1) (Ray Dream) (1995).iso / DREAMSDK.WIN / INCLUDE / EVXALLOC.CPP < prev    next >
C/C++ Source or Header  |  1995-10-18  |  2KB  |  85 lines

  1. /* $Id: EVXALLOC.CPP 1.11 1995/10/12 22:01:19 YannPC Exp $ */
  2. #ifndef __EVXALLOC__
  3. #include "EVXAlloc.h"
  4. #endif
  5.  
  6. #ifndef __EVXAPI__
  7. #include "EVXAPI.h"
  8. #endif
  9.  
  10. #ifndef __EVDLLRT__
  11. #include "EVDLLRT.h"
  12. #endif
  13.  
  14. //#ifndef __STDDEF__
  15. //#include <stddef.h>
  16. //#endif
  17. typedef unsigned int size_t;
  18.  
  19. #ifndef __MWERKS__
  20. void* operator new(unsigned int byteCount) {
  21.     return EVXmalloc((size_t)byteCount);
  22.     }
  23. #endif
  24.  
  25. #if defined(qPowerPC) || defined(__MWERKS__)
  26. void* operator new(unsigned long byteCount) {
  27.     return EVXmalloc((size_t)byteCount);
  28.     }
  29. #endif
  30.  
  31. void operator delete(void* block) {
  32.     EVXfree(block);
  33.     }
  34.  
  35. void* __vec_new(void* p, int nb, int size, void* cst) {
  36.     if (!p) {
  37.         p = EVXmalloc(nb*size);
  38.         }
  39.     if (p) {
  40.         int i;
  41.         char* pp = (char*)p;
  42.         for (i = 0; i < nb; i++) {
  43.             (*(void(*)(char*)) cst)(pp);
  44.             pp += size;
  45.             }
  46.         return p;
  47.         }
  48.     return 0;
  49.     }
  50.  
  51. void __vec_delete(void* p, int nb, int size, void* dst, int auto_delete_vec, int auto_delete) {
  52.     if (nb == -1) {
  53.         Failure(-108, 0);
  54.         }
  55.     if (p) {
  56.         int i;
  57.         char* pp;
  58.         pp = ((char*)p) + nb*size;
  59.         for (i = 0; i < nb; i++) {
  60.             pp -= size;
  61.             (*(void(*)(char*, long)) dst)(pp, auto_delete);
  62.             }
  63.         }
  64.     if (p && auto_delete_vec) {
  65.         EVXfree(p);
  66.         }
  67.     }
  68.  
  69. void* RDcalloc(unsigned long nmemb, unsigned long size) {
  70.     return EVXmalloc(nmemb * size);
  71.     }
  72.  
  73. void RDfree(void* ptr) {
  74.     EVXfree(ptr);
  75.     }
  76.  
  77. void* RDmalloc(unsigned long size) {
  78.     return EVXmalloc(size);
  79.     }
  80.  
  81. void* RDrealloc(void* ptr, unsigned long size) {
  82.     return EVXrealloc(ptr, size);
  83.     }
  84.  
  85.